package com.bondex.charter.maindata.pojo.dto;

import com.bondex.bondexapi.basedata.global.dto.B0010QueryParam;
import com.bondex.bondexapi.basedata.global.dto.BaseNameLanguage;
import com.bondex.global.pojo.User;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;

import java.util.List;

/**
 * 查询标准入参
 * Created by JD on 2019/03/26.
 */
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class B0000Query {

	/**
	 * CAS有效的token
	 */
	private String token;

	/**
	 * 排序方式
	 */
	private String orderby;

	/**
	 * 返回条数
	 */
	private int limit;

	/**
	 * 页号
	 */
	private int pageNumber;

	/**
	 * 基础数据代码，各接口对应的DB字段不同
	 */
	private String code;

	/**
	 * 模糊查询条件
	 */
	private String likeStr;

	/**
	 * 模糊查询方式2
	 */
	private String likeStr2;

	/**
	 * 分公司编码
	 */
	private String corpCode;

	/**
	 * 数据状态
	 */
	private String dataType;

	/**
	 * 删除标志（0：未删除；1：已删除）
	 */
	private String delFlg;

	/**
	 * 主动拼接查询入参
	 */
	private List<B0010QueryParam> queryParam;


	//入参转换后
	/**
	 * token对应的用户
	 */
	private User user;

	/**
	 * 用户所属分公司
	 */
	private String usingCorpCode;

	/**
	 * 使用语言
	 */
	private String usingLanguage;

	/**
	 * 主动拼接查询入参
	 */
	@JsonIgnore
	private String queryParamStr;

	//数据库返回
	/**
	 * 多语言
	 */
	@JsonIgnore
	private List<BaseNameLanguage> nameLanguages;

	/**
	 * 查询方式，
	 * 0：使用ES
	 * 1：使用内存
	 */
	private String queryMethod;


	/**
	 * 返回条数 开始数量
	 */
	@JsonIgnore
	private int startQuantity;

	public String getToken() {
		return token;
	}

	public void setToken(String token) {
		this.token = token;
	}

	public String getOrderby() {
		return orderby;
	}

	public void setOrderby(String orderby) {
		this.orderby = orderby;
	}

	public int getLimit() {
		return limit;
	}

	public void setLimit(int limit) {
		this.limit = limit;
	}

	public int getPageNumber() {
		return pageNumber;
	}

	public void setPageNumber(int pageNumber) {
		this.pageNumber = pageNumber;
	}

	public String getCode() {
		return code;
	}

	public void setCode(String code) {
		this.code = code;
	}

	public String getLikeStr() {
		return likeStr;
	}

	public void setLikeStr(String likeStr) {
		this.likeStr = likeStr;
	}

	public String getLikeStr2() {
		return likeStr2;
	}

	public void setLikeStr2(String likeStr2) {
		this.likeStr2 = likeStr2;
	}

	public String getCorpCode() {
		return corpCode;
	}

	public void setCorpCode(String corpCode) {
		this.corpCode = corpCode;
	}

	public String getDataType() {
		return dataType;
	}

	public void setDataType(String dataType) {
		this.dataType = dataType;
	}

	public String getDelFlg() {
		return delFlg;
	}

	public void setDelFlg(String delFlg) {
		this.delFlg = delFlg;
	}

	public List<B0010QueryParam> getQueryParam() {
		return queryParam;
	}

	public void setQueryParam(List<B0010QueryParam> queryParam) {
		this.queryParam = queryParam;
	}

	public User getUser() {
		return user;
	}

	public void setUser(User user) {
		this.user = user;
	}

	public String getUsingCorpCode() {
		return usingCorpCode;
	}

	public void setUsingCorpCode(String usingCorpCode) {
		this.usingCorpCode = usingCorpCode;
	}

	public String getUsingLanguage() {
		return usingLanguage;
	}

	public void setUsingLanguage(String usingLanguage) {
		this.usingLanguage = usingLanguage;
	}

	public String getQueryParamStr() {
		return queryParamStr;
	}

	public void setQueryParamStr(String queryParamStr) {
		this.queryParamStr = queryParamStr;
	}

	public List<BaseNameLanguage> getNameLanguages() {
		return nameLanguages;
	}

	public void setNameLanguages(List<BaseNameLanguage> nameLanguages) {
		this.nameLanguages = nameLanguages;
	}

	public String getQueryMethod() {
		return queryMethod;
	}

	public void setQueryMethod(String queryMethod) {
		this.queryMethod = queryMethod;
	}

	public int getStartQuantity() {
		return startQuantity;
	}

	public void setStartQuantity(int startQuantity) {
		this.startQuantity = startQuantity;
	}
}
